Python中的嵌套与可变循环 | 您所在的位置:网站首页 › python 循环嵌套 › Python中的嵌套与可变循环 |
文章目录
一、嵌套循环二、可变循环三、可变嵌套循环四、更多可变嵌套循环五、小练习——秒表
一、嵌套循环
前边学过的循环是这样的: multiplier = 5 for i in range(1,11): print i, "*", multiplier, "=" ,i * multiplier什么是嵌套循环呢?简单地说就是一个循环出现在另一个循环中。对于外循环的每次迭代,内循环都要完成它的所有迭代。利用嵌套便可以一次打印3个乘法表: for multiplier in range(5,8): for i in range(1,11): print i, "*", multiplier, "=" ,i * multiplier print像这种嵌套结构,一定要非常注意缩进问题 二、可变循环循环次数由用户决定,或者有程序的另一部决定,我们首先需要定义一个变量: numStars = int(raw_input("How many stars do you want?")) for i in range(numStars) : print '* ',这里想要所有的 “ * ” 在同一行,在print后边加逗号 “ , ” 即可。 三、可变嵌套循环现在我们来尝试一下可变嵌套循环。其实也是嵌套循环,不过其中一个或多个循环在range( )函数中使用了变量。 numLines = int(raw_input("How many lines of stars do you want?")) numStars = int(raw_input("How mang stars per line?")) for i in range(numLines): for j in range(numStars): print '* ', print第一个print使所有的星号打印在同一行上;第二个print开始新的一行星号。 再试试双重嵌套结构: numBlocks = int(raw_input("How mang blocks do you want?")) numLines = int(raw_input("How many lines of stars do you want?")) numStars = int(raw_input("How mang stars per line?")) for k in range(numBlocks): for i in range(numLines): for j in range(numStars): print '* ', print print前两个print用法与上相同,第三个print在每个循环之间加一行空格。 四、更多可变嵌套循环 numBlocks = int(raw_input("How many blocks do you want?")) for block in range(numBlocks): for line in range(block * 2): for star in range((block+line)*3): print '*', print print这样上例可能会更清楚一些了: numBlocks = int(raw_input("How many blocks do you want?")) for block in range(numBlocks): print "block=",block for line in range(block * 2): for star in range((block+line)*3): print "*", print "line=",line ,"star=",star print由于所有的range( )函数都直接使用变量,即range(x)。故所有的计数都是从0开始。这个需要习惯,以后经常会用到的是从0开始而不是1。 五、小练习——秒表 import time start = int(raw_input("What time do you want?",)) for i in range(start,0,-1): print i time.sleep(1) print "Game Over!" |
CopyRight 2018-2019 实验室设备网 版权所有 |